package com.itheima.homework10;

import java.io.File;
import java.util.*;

/*
按照要求，编写下面的代码：   File类练习

递归遍历文件夹，获取到每类文件的数目。

例如：

txt 文件 2个
mp3 文件 5个
avi 文件 4个
png 文件 10个


提示：
1. 采用递归遍历文件夹，得到一个存放文件的 List 集合
2. 使用 Map集合对存放文件的List集合进行处理。（一一对应问题）
3. 循环遍历Map集合



 */
public class Test05 {
    public static void main(String[] args) {
        List<File> txtList=new ArrayList<>();
        List<File> mp3List=new ArrayList<>();
        List<File> aviList=new ArrayList<>();
        List<File> pngList=new ArrayList<>();
        File file=new File("C:\\Users\\hldn\\Desktop\\测试");
        diGui(file,txtList,mp3List,aviList,pngList);
        Map<String,Integer> map= new HashMap<>();
        map.put("txt",txtList.size());
        map.put("mp3",mp3List.size());
        map.put("avi",aviList.size());
        map.put("png",pngList.size());
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        entries.forEach(s-> System.out.println(s));


    }
    public static void diGui(File file, List<File> txtList, List<File> mp3List, List<File> aviList, List<File> pngList) {
   if(file.isFile()){
       if(file.toString().contains("txt")){
           txtList.add(file);
       }
       if(file.toString().contains("mp3")){
           mp3List.add(file);
       }
       if(file.toString().contains("avi")){
          aviList.add(file);
       }
       if(file.toString().contains("png")){
           pngList.add(file);
       }
   }
   if(file.isDirectory()){
       File[] childArray = file.listFiles();
       if(childArray!=null){
           for (File file1 : childArray) {
               diGui(file1,txtList,mp3List,aviList,pngList);
           }
       }

   }



    }
}
